home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / gfx / show / MerlinGfx.lha / hrgsystem.h < prev    next >
C/C++ Source or Header  |  1995-06-07  |  26KB  |  902 lines

  1. #ifndef _INLINE_HRGSYSTEM_H
  2. #define _INLINE_HRGSYSTEM_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL
  11. #define BASE_EXT_DECL0 extern struct Library * HRGSystemBase;
  12. #endif
  13. #ifndef BASE_PAR_DECL
  14. #define BASE_PAR_DECL
  15. #define BASE_PAR_DECL0 void
  16. #endif
  17. #ifndef BASE_NAME
  18. #define BASE_NAME HRGSystemBase
  19. #endif
  20.  
  21. BASE_EXT_DECL0
  22.  
  23. /* Falsche FD/proto-Argumente !
  24.  
  25.     hrAdjustVirtSize gets 4 fd args and 3 protos.
  26. */
  27.  
  28. extern __inline LONG
  29. hrAddModeInfo( BASE_PAR_DECL struct HRModeInfo * modeinfo )
  30. {
  31.     BASE_EXT_DECL
  32.     register LONG _res __asm("d0");
  33.     register struct Library *a6 __asm("a6") = BASE_NAME;
  34.     register struct HRModeInfo *a0 __asm("a0") = modeinfo;
  35.     __asm __volatile ("jsr a6@(-0xa8)"
  36.     : "=r" (_res)
  37.     : "r" (a6), "r" (a0)
  38.     : "d0", "d1", "a0", "a1");
  39.     return _res;
  40. }
  41. extern __inline struct HRBitMap *
  42. hrAllocBitMap( BASE_PAR_DECL ULONG xx )
  43. {
  44.     BASE_EXT_DECL
  45.     register struct HRBitMap * _res __asm("d0");
  46.     register struct Library *a6 __asm("a6") = BASE_NAME;
  47.     register ULONG d0 __asm("d0") = xx;
  48.  
  49.     __asm __volatile ("jsr a6@(-0x3c)"
  50.     : "=r" (_res)
  51.     : "r" (a6), "r" (d0)
  52.     : "d0", "d1", "a0", "a1");
  53.     return _res;
  54. }
  55. extern __inline struct HRColorMap *
  56. hrAllocColorMap( BASE_PAR_DECL UWORD Colors )
  57. {
  58.     BASE_EXT_DECL
  59.     register struct HRColorMap * _res __asm("d0");
  60.     register struct Library *a6 __asm("a6") = BASE_NAME;
  61.     register UWORD d0 __asm("d0") = Colors;
  62.  
  63.     __asm __volatile ("jsr a6@(-0xf6)"
  64.     : "=r" (_res)
  65.     : "r" (a6), "r" (d0)
  66.     : "d0", "d1", "a0", "a1");
  67.     return _res;
  68. }
  69. extern __inline struct HRHandle *
  70. hrAllocScreen( BASE_PAR_DECL struct HRModeInfo * mode,
  71.                     UWORD width, UWORD height,
  72.                     STRPTR title, ULONG * error )
  73. {
  74.     BASE_EXT_DECL
  75.     register struct HRHandle * _res __asm("d0");
  76.     register struct Library *a6 __asm("a6") = BASE_NAME;
  77.     register struct HRModeInfo * a0 __asm("a0") = mode;
  78.     register UWORD d0 __asm("d0") = width;
  79.     register UWORD d1 __asm("d1") = height;
  80.     register STRPTR a1 __asm("a1") = title;
  81.     register ULONG * a2 __asm("a2") = error;
  82.  
  83.     __asm __volatile ("jsr a6@(-0xde)"
  84.     : "=r" (_res)
  85.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (a2)
  86.     : "d0", "d1", "a0", "a1", "a2");
  87.     return _res;
  88. }
  89. extern __inline ULONG
  90. hrAllocSecondView( BASE_PAR_DECL struct HRHandle * hrh,
  91.                          UWORD width, UWORD height, UBYTE mode )
  92. {    BASE_EXT_DECL
  93.     register ULONG _res __asm("d0");
  94.     register struct Library *a6 __asm("a6") = BASE_NAME;
  95.     register struct HRHandle * a0 __asm("a0") = hrh;
  96.     register UWORD d0 __asm("d0") = width;
  97.     register UWORD d1 __asm("d1") = height;
  98.     register UBYTE d2 __asm("d2") = mode;
  99.  
  100.     __asm __volatile ("jsr a6@(-0x180)"
  101.     : "=r" (_res)
  102.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2)
  103.     : "d0", "d1", "a0", "a1", "d2");
  104.     return _res;
  105. }
  106. extern __inline BOOL
  107. hrAttachScreen( BASE_PAR_DECL struct HRHandle * hrh, struct Screen * scr )
  108. {
  109.     BASE_EXT_DECL
  110.     register BOOL _res __asm("d0");
  111.     register struct Library *a6 __asm("a6") = BASE_NAME;
  112.     register struct HRHandle * a0 __asm("a0") = hrh;
  113.     register struct Screen * a1 __asm("a1") = scr;
  114.     __asm __volatile ("jsr a6@(-0xea)"
  115.     : "=r" (_res)
  116.     : "r" (a6), "r" (a0), "r" (a1)
  117.     : "d0", "d1", "a0", "a1");
  118.     return _res;
  119. }
  120. extern __inline BOOL
  121. hrCalcVirtualSize( BASE_PAR_DECL struct HRModeInfo *mi,
  122.                          UWORD *width, UWORD *height )
  123. {    BASE_EXT_DECL
  124.     register BOOL _res __asm("d0");
  125.     register struct Library *a6 __asm("a6") = BASE_NAME;
  126.     register struct HRModeInfo *a0 __asm("a0") = mi;
  127.     register UWORD *a1 __asm("a1") = width;
  128.     register UWORD *a2 __asm("a2") = height;
  129.  
  130.     __asm __volatile ("jsr a6@(-0xba)"
  131.     : "=r" (_res)
  132.     : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  133.     : "d0", "d1", "a0", "a1", "a2");
  134.     return _res;
  135. }
  136. extern __inline ULONG
  137. hrCheckScreenState( BASE_PAR_DECL struct Screen * scr )
  138. {
  139.     BASE_EXT_DECL
  140.     register ULONG _res __asm("d0");
  141.     register struct Library *a6 __asm("a6") = BASE_NAME;
  142.     register struct Screen  *a0 __asm("a0") = scr;
  143.     __asm __volatile ("jsr a6@(-0x13e)"
  144.     : "=r" (_res)
  145.     : "r" (a6), "r" (a0)
  146.     : "d0", "d1", "a0", "a1");
  147.     return _res;
  148. }
  149. extern __inline BOOL
  150. hrCheckVSizeMatch( BASE_PAR_DECL struct HRModeInfo * modeinfo,
  151.                          UWORD vwidth, UWORD vheight, ULONG flags )
  152. {    BASE_EXT_DECL
  153.     register BOOL _res __asm("d0");
  154.     register struct Library *a6 __asm("a6") = BASE_NAME;
  155.     register struct HRModeInfo * a0 __asm("a0") = modeinfo;
  156.     register UWORD d0 __asm("d0") = vwidth;
  157.     register UWORD d1 __asm("d1") = vheight;
  158.     register ULONG d2 __asm("d2") = flags;
  159.     __asm __volatile ("jsr a6@(-0x138)"
  160.     : "=r" (_res)
  161.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2)
  162.     : "d0", "d1", "a0", "a1", "d2");
  163.     return _res;
  164. }
  165. extern __inline void
  166. hrClearScreen( BASE_PAR_DECL struct HRHandle * hrh )
  167. {
  168.     BASE_EXT_DECL
  169.     register struct Library *a6 __asm("a6") = BASE_NAME;
  170.     register struct HRHandle *a0 __asm("a0") = hrh;
  171.     __asm __volatile ("jsr a6@(-0x8a)"
  172.     : /* no output */
  173.     : "r" (a6), "r" (a0)
  174.     : "d0", "d1", "a0", "a1");
  175. }
  176. extern __inline ULONG
  177. hrCloseAutoScreen( BASE_PAR_DECL UBYTE *pattern )
  178. {
  179.     BASE_EXT_DECL
  180.     register ULONG _res __asm("d0");
  181.     register struct Library *a6 __asm("a6") = BASE_NAME;
  182.     register UBYTE *a0 __asm("a0") = pattern;
  183.     __asm __volatile ("jsr a6@(-0x174)"
  184.     : "=r" (_res)
  185.     : "r" (a6), "r" (a0)
  186.     : "d0", "d1", "a0", "a1");
  187.     return _res;
  188. }
  189. extern __inline void
  190. hrCloseScreen( BASE_PAR_DECL struct HRHandle * h_res )
  191. {
  192.     BASE_EXT_DECL
  193.     register struct Library *a6 __asm("a6") = BASE_NAME;
  194.     register struct HRHandle *a0 __asm("a0") = h_res;
  195.     __asm __volatile ("jsr a6@(-0x60)"
  196.     : /* no output */
  197.     : "r" (a6), "r" (a0)
  198.     : "d0", "d1", "a0", "a1");
  199. }
  200. extern __inline LONG
  201. hrDelModeInfo( BASE_PAR_DECL struct HRModeInfo * modeinfo )
  202. {
  203.     BASE_EXT_DECL
  204.     register LONG _res __asm("d0");
  205.     register struct Library *a6 __asm("a6") = BASE_NAME;
  206.     register struct HRModeInfo *a0 __asm("a0") = modeinfo;
  207.     __asm __volatile ("jsr a6@(-0xae)"
  208.     : "=r" (_res)
  209.     : "r" (a6), "r" (a0)
  210.     : "d0", "d1", "a0", "a1");
  211.     return _res;
  212. }
  213. extern __inline void
  214. hrDoBanking( BASE_PAR_DECL struct HRBitMap * hrbitmap, ULONG bank )
  215. {
  216.     BASE_EXT_DECL
  217.     register struct Library *a6 __asm("a6") = BASE_NAME;
  218.     register struct HRBitMap *a0 __asm("a0") = hrbitmap;
  219.     register ULONG d0 __asm("d0") = bank;
  220.     __asm __volatile ("jsr a6@(-0x24)"
  221.     : /* no output */
  222.     : "r" (a6), "r" (a0), "r" (d0)
  223.     : "d0", "d1", "a0", "a1");
  224. }
  225. extern __inline ULONG
  226. hrEazyCheckAbort( BASE_PAR_DECL struct HRHandle * h_res )
  227. {
  228.     BASE_EXT_DECL
  229.     register ULONG _res __asm("d0");
  230.     register struct Library *a6 __asm("a6") = BASE_NAME;
  231.     register struct HRHandle *a0 __asm("a0") = h_res;
  232.     __asm __volatile ("jsr a6@(-0x120)"
  233.     : "=r" (_res)
  234.     : "r" (a6), "r" (a0)
  235.     : "d0", "d1", "a0", "a1");
  236.     return _res;
  237. }
  238. extern __inline struct HRHandle *
  239. hrEazyOpenScreen( BASE_PAR_DECL struct HRModeInfo * mode,
  240.                         UWORD width, UWORD height, ULONG ezmode,
  241.                         STRPTR title, ULONG * error )
  242. {    BASE_EXT_DECL
  243.     register struct HRHandle * _res __asm("d0");
  244.     register struct Library *a6 __asm("a6") = BASE_NAME;
  245.     register struct HRModeInfo *a0 __asm("a0") = mode;
  246.     register UWORD d0 __asm("d0") = width;
  247.     register UWORD d1 __asm("d1") = height;
  248.     register ULONG d2 __asm("d2") = ezmode;
  249.     register STRPTR a1 __asm("a1") = title;
  250.     register ULONG * a2 __asm("a2") = error;
  251.     __asm __volatile ("jsr a6@(-0x12c)"
  252.     : "=r" (_res)
  253.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a1), "r" (a2)
  254.     : "d0", "d1", "a0", "a1", "d2", "a2");
  255.     return _res;
  256. }
  257. extern __inline struct HRHandle *
  258. hrEazyScreenAttach( BASE_PAR_DECL struct HRHandle * hrh,
  259.                           struct Screen * iscr,
  260.                           ULONG ezmode, ULONG * error )
  261. {    BASE_EXT_DECL
  262.     register struct HRHandle * _res __asm("d0");
  263.     register struct Library *a6 __asm("a6") = BASE_NAME;
  264.     register struct HRHandle *a0 __asm("a0") = hrh;
  265.     register struct Screen *a1 __asm("a1") = iscr;
  266.     register ULONG d0 __asm("d0") = ezmode;
  267.     register ULONG *a2 __asm("a2") = error;
  268.     __asm __volatile ("jsr a6@(-0x132)"
  269.     : "=r" (_res)
  270.     : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (a2)
  271.     : "d0", "d1", "a0", "a1", "a2");
  272.     return _res;
  273. }
  274. extern __inline ULONG
  275. hrEazyWaitClose (BASE_PAR_DECL struct HRHandle * h_res, ULONG timeout)
  276. {
  277.     BASE_EXT_DECL
  278.     register ULONG _res __asm("d0");
  279.     register struct Library *a6 __asm("a6") = BASE_NAME;
  280.     register struct HRHandle *a0 __asm("a0") = h_res;
  281.     register ULONG d0 __asm("d0") = timeout;
  282.     __asm __volatile ("jsr a6@(-0x126)"
  283.     : "=r" (_res)
  284.     : "r" (a6), "r" (a0), "r" (d0)
  285.     : "d0", "d1", "a0", "a1");
  286.     return _res;
  287. }
  288. extern __inline ULONG
  289. hrFindScreen( BASE_PAR_DECL UBYTE *pattern )
  290. {
  291.     BASE_EXT_DECL
  292.     register ULONG _res __asm("d0");
  293.     register struct Library *a6 __asm("a6") = BASE_NAME;
  294.     register UBYTE *a0 __asm("a0") = pattern;
  295.     __asm __volatile ("jsr a6@(-0x17a)"
  296.     : "=r" (_res)
  297.     : "r" (a6), "r" (a0)
  298.     : "d0", "d1", "a0", "a1");
  299.     return _res;
  300. }
  301. extern __inline void
  302. hrFlushBitMaps( BASE_PAR_DECL0 )
  303. {
  304.     BASE_EXT_DECL
  305.     register struct Library *a6 __asm("a6") = BASE_NAME;
  306.     __asm __volatile ("jsr a6@(-0x48)"
  307.     : /* no output */
  308.     : "r" (a6)
  309.     : "d0", "d1", "a0", "a1");
  310. }
  311. extern __inline void
  312. hrFreeBitMap( BASE_PAR_DECL struct HRBitMap * bitmap )
  313. {
  314.     BASE_EXT_DECL
  315.     register struct Library *a6 __asm("a6") = BASE_NAME;
  316.     register struct HRBitMap *a0 __asm("a0") = bitmap;
  317.     __asm __volatile ("jsr a6@(-0x42)"
  318.     : /* no output */
  319.     : "r" (a6), "r" (a0)
  320.     : "d0", "d1", "a0", "a1");
  321. }
  322. extern __inline void
  323. hrFreeColorMap( BASE_PAR_DECL struct HRColorMap *colormap )
  324. {
  325.     BASE_EXT_DECL
  326.     register struct Library *a6 __asm("a6") = BASE_NAME;
  327.     register struct HRColorMap *a0 __asm("a0") = colormap;
  328.     __asm __volatile ("jsr a6@(-0xfc)"
  329.     : /* no output */
  330.     : "r" (a6), "r" (a0)
  331.     : "d0", "d1", "a0", "a1");
  332. }
  333. extern __inline void
  334. hrFreeScreen( BASE_PAR_DECL struct HRHandle * hrh )
  335. {
  336.     BASE_EXT_DECL
  337.     register struct Library *a6 __asm("a6") = BASE_NAME;
  338.     register struct HRHandle *a0 __asm("a0") = hrh;
  339.     __asm __volatile ("jsr a6@(-0xe4)"
  340.     : /* no output */
  341.     : "r" (a6), "r" (a0)
  342.     : "d0", "d1", "a0", "a1");
  343. }
  344. extern __inline void
  345. hrFreeSecondView( BASE_PAR_DECL struct HRHandle * hrh )
  346. {
  347.     BASE_EXT_DECL
  348.     register struct Library *a6 __asm("a6") = BASE_NAME;
  349.     register struct HRHandle *a0 __asm("a0") = hrh;
  350.     __asm __volatile ("jsr a6@(-0x198)"
  351.     : /* no output */
  352.     : "r" (a6), "r" (a0)
  353.     : "d0", "d1", "a0", "a1");
  354. }
  355. extern __inline struct HRCursor *
  356. hrGetDefaultCursor( BASE_PAR_DECL UBYTE type )
  357. {
  358.     BASE_EXT_DECL
  359.     register struct HRCursor * _res __asm("d0");
  360.     register struct Library *a6 __asm("a6") = BASE_NAME;
  361.     register UBYTE d0 __asm("d0") = type;
  362.     __asm __volatile ("jsr a6@(-0xcc)"
  363.     : "=r" (_res)
  364.     : "r" (a6), "r" (d0)
  365.     : "d0", "d1", "a0", "a1");
  366.     return _res;
  367. }
  368. extern __inline STRPTR
  369. hrGetErrorText( BASE_PAR_DECL ULONG error )
  370. {
  371.     BASE_EXT_DECL
  372.     register STRPTR _res __asm("d0");
  373.     register struct Library *a6 __asm("a6") = BASE_NAME;
  374.     register ULONG d0 __asm("d0") = error;
  375.     __asm __volatile ("jsr a6@(-0x162)"
  376.     : "=r" (_res)
  377.     : "r" (a6), "r" (d0)
  378.     : "d0", "d1", "a0", "a1");
  379.     return _res;
  380. }
  381. extern __inline struct HRHardwareInfo *
  382. hrGetHardwareInfo( BASE_PAR_DECL0 )
  383. {
  384.     BASE_EXT_DECL
  385.     register struct HRHardwareInfo *_res __asm("d0");
  386.     register struct Library *a6 __asm("a6") = BASE_NAME;
  387.     __asm __volatile ("jsr a6@(-0x36)"
  388.     : "=r" (_res)
  389.     : "r" (a6)
  390.     : "d0", "d1", "a0", "a1");
  391.     return _res;
  392. }
  393. extern __inline void
  394. hrGetPaletteRGBA( BASE_PAR_DECL struct HRHandle * hrh,
  395.                         HRCOL_RGBA * coltab, UBYTE start, UBYTE end )
  396. {
  397.     BASE_EXT_DECL
  398.     register struct Library *a6 __asm("a6") = BASE_NAME;
  399.     register struct HRHandle *a0 __asm("a0") = hrh;
  400.     register HRCOL_RGBA *a1 __asm("a1") = coltab;
  401.     register UBYTE d0 __asm("d0") = start;
  402.     register UBYTE d1 __asm("d1") = end;
  403.     __asm __volatile ("jsr a6@(-0x84)"
  404.     : /* no output */
  405.     : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1)
  406.     : "d0", "d1", "a0", "a1");
  407. }
  408. extern __inline HRCOL_RGBA
  409. hrGetRGBA( BASE_PAR_DECL struct HRHandle * hrh, UBYTE colnum )
  410. {
  411.     BASE_EXT_DECL
  412.     register HRCOL_RGBA _res __asm("d0");
  413.     register struct Library *a6 __asm("a6") = BASE_NAME;
  414.     register struct HRHandle *a0 __asm("a0") = hrh;
  415.     register UBYTE d0 __asm("d0") = colnum;
  416.     __asm __volatile ("jsr a6@(-0x6c)"
  417.     : "=r" (_res)
  418.     : "r" (a6), "r" (a0), "r" (d0)
  419.     : "d0", "d1", "a0", "a1");
  420.     return _res;
  421. }
  422. extern __inline UBYTE *
  423. hrLockBitMap( BASE_PAR_DECL struct HRBitMap * hrbm )
  424. {
  425.     BASE_EXT_DECL
  426.     register UBYTE * _res __asm("d0");
  427.     register struct Library *a6 __asm("a6") = BASE_NAME;
  428.     register struct HRBitMap *a0 __asm("a0") = hrbm;
  429.     __asm __volatile ("jsr a6@(-0x4e)"
  430.     : "=r" (_res)
  431.     : "r" (a6), "r" (a0)
  432.     : "d0", "d1", "a0", "a1");
  433.     return _res;
  434. }
  435. extern __inline struct HRList *
  436. hrLockHRList( BASE_PAR_DECL0 )
  437. {
  438.     BASE_EXT_DECL
  439.     register struct HRList * _res __asm("d0");
  440.     register struct Library *a6 __asm("a6") = BASE_NAME;
  441.     __asm __volatile ("jsr a6@(-0x2a)"
  442.     : "=r" (_res)
  443.     : "r" (a6)
  444.     : "d0", "d1", "a0", "a1");
  445.     return _res;
  446. }
  447. extern __inline struct HRModeInfo *
  448. hrLockModeInfoList( BASE_PAR_DECL0 )
  449. {
  450.     BASE_EXT_DECL
  451.     register struct HRModeInfo * _res __asm("d0");
  452.     register struct Library *a6 __asm("a6") = BASE_NAME;
  453.     __asm __volatile ("jsr a6@(-0x9c)"
  454.     : "=r" (_res)
  455.     : "r" (a6)
  456.     : "d0", "d1", "a0", "a1");
  457.     return _res;
  458. }
  459. extern __inline void
  460. hrLockScreenBase( BASE_PAR_DECL struct HRHandle * hrh )
  461. {
  462.     BASE_EXT_DECL
  463.     register struct Library *a6 __asm("a6") = BASE_NAME;
  464.     register struct HRHandle *a0 __asm("a0") = hrh;
  465.     __asm __volatile ("jsr a6@(-0x144)"
  466.     : /* no output */
  467.     : "r" (a6), "r" (a0)
  468.     : "d0", "d1", "a0", "a1");
  469. }
  470. extern __inline struct HRModeInfo *
  471. hrMatchModeInfoTagList( BASE_PAR_DECL UWORD bitmaptype,
  472.                                 UWORD * width, UWORD * height,
  473.                                 struct TagItem * tags )
  474. {    BASE_EXT_DECL
  475.     register struct HRModeInfo * _res __asm("d0");
  476.     register struct Library *a6 __asm("a6") = BASE_NAME;
  477.     register UWORD d0 __asm("d0") = bitmaptype;
  478.     register UWORD * a0 __asm("a0") = width;
  479.     register UWORD * a1 __asm("a1") = height;
  480.     register struct TagItem * a2 __asm("a2") = tags;
  481.     __asm __volatile ("jsr a6@(-0xc0)"
  482.     : "=r" (_res)
  483.     : "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2)
  484.     : "d0", "d1", "a0", "a1", "a2");
  485.     return _res;
  486. }
  487.  
  488. #ifndef NO_INLINE_STDARG
  489. #define hrMatchModeInfoTags(a0, tags...) \
  490.  ({ struct TagItem _tags[] = { tags }; hrMatchModeInfoTagList ((a0), _tags); })
  491. #endif /* not NO_INLINE_STDARG */
  492.  
  493. extern __inline LONG
  494. hrModifyHDCMP( BASE_PAR_DECL struct HRHandle * hrh, ULONG hdcmp )
  495. {
  496.     BASE_EXT_DECL
  497.     register LONG _res __asm("d0");
  498.     register struct Library *a6 __asm("a6") = BASE_NAME;
  499.     register struct HRHandle * a0 __asm("a0") = hrh;
  500.     register ULONG d0 __asm("d0") = hdcmp;
  501.     __asm __volatile ("jsr a6@(-0x168)"
  502.     : "=r" (_res)
  503.     : "r" (a6), "r" (a0), "r" (d0)
  504.     : "d0", "d1", "a0", "a1");
  505.     return _res;
  506. }
  507. extern __inline void
  508. hrModifySpeeder( BASE_PAR_DECL struct HRHandle * hrh,
  509.                       UWORD cspeed, UBYTE ct_reshold, UBYTE cdynamic )
  510. {    BASE_EXT_DECL
  511.     register struct Library *a6 __asm("a6") = BASE_NAME;
  512.     register struct HRHandle *a0 __asm("a0") = hrh;
  513.     register UWORD d0 __asm("d0") = cspeed;
  514.     register UBYTE d1 __asm("d1") = ct_reshold;
  515.     register UBYTE d2 __asm("d2") = cdynamic;
  516.     __asm __volatile ("jsr a6@(-0x16e)"
  517.     : /* no output */
  518.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2)
  519.     : "d0", "d1", "a0", "a1", "d2");
  520. }
  521. extern __inline void
  522. hrMoveSecondView( BASE_PAR_DECL struct HRHandle * hrh,
  523.                         UWORD xpos, UWORD ypos )
  524. {    BASE_EXT_DECL
  525.     register struct Library *a6 __asm("a6") = BASE_NAME;
  526.     register struct HRHandle *a0 __asm("a0") = hrh;
  527.     register UWORD d0 __asm("d0") = xpos;
  528.     register UWORD d1 __asm("d1") = ypos;
  529.     __asm __volatile ("jsr a6@(-0x18c)"
  530.     : /* no output */
  531.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  532.     : "d0", "d1", "a0", "a1");
  533. }
  534. extern __inline UBYTE *
  535. hrNameBitMapType( BASE_PAR_DECL UWORD bmtype, BOOL mode )
  536. {
  537.     BASE_EXT_DECL
  538.     register UBYTE * _res __asm("d0");
  539.     register struct Library *a6 __asm("a6") = BASE_NAME;
  540.     register UWORD d0 __asm("d0") = bmtype;
  541.     register BOOL d1 __asm("d1") = mode;
  542.     __asm __volatile ("jsr a6@(-0x156)"
  543.     : "=r" (_res)
  544.     : "r" (a6), "r" (d0), "r" (d1)
  545.     : "d0", "d1", "a0", "a1");
  546.     return _res;
  547. }
  548. extern __inline struct HRHandle *
  549. hrOpenScreenTagList( BASE_PAR_DECL struct TagItem * tags )
  550. {
  551.     BASE_EXT_DECL
  552.     register struct HRHandle * _res __asm("d0");
  553.     register struct Library *a6 __asm("a6") = BASE_NAME;
  554.     register struct TagItem *a0 __asm("a0") = tags;
  555.     __asm __volatile ("jsr a6@(-0x5a)"
  556.     : "=r" (_res)
  557.     : "r" (a6), "r" (a0)
  558.     : "d0", "d1", "a0", "a1");
  559.     return _res;
  560. }
  561.  
  562. #ifndef NO_INLINE_STDARG
  563. #define hrOpenScreenTags(tags...) \
  564.  ({ struct TagItem _tags[] = { tags }; hrOpenScreenTagList (_tags); })
  565. #endif /* not NO_INLINE_STDARG */
  566.  
  567. extern __inline void
  568. hrRemoveScreen( BASE_PAR_DECL struct HRHandle * hrh )
  569. {
  570.     BASE_EXT_DECL
  571.     register struct Library *a6 __asm("a6") = BASE_NAME;
  572.     register struct HRHandle * a0 __asm("a0") = hrh;
  573.     __asm __volatile ("jsr a6@(-0xf0)"
  574.     : /* no output */
  575.     : "r" (a6), "r" (a0)
  576.     : "d0", "d1", "a0", "a1");
  577. }
  578. extern __inline struct HRModeInfo *
  579. hrRequestModeTagList( BASE_PAR_DECL struct TagItem * tags )
  580. {
  581.     BASE_EXT_DECL
  582.     register struct HRModeInfo * _res __asm("d0");
  583.     register struct Library *a6 __asm("a6") = BASE_NAME;
  584.     register struct TagItem *a0 __asm("a0") = tags;
  585.     __asm __volatile ("jsr a6@(-0xb4)"
  586.     : "=r" (_res)
  587.     : "r" (a6), "r" (a0)
  588.     : "d0", "d1", "a0", "a1");
  589.     return _res;
  590. }
  591.  
  592. #ifndef NO_INLINE_STDARG
  593. #define hrRequestModeTags(tags...) \
  594.  ({ struct TagItem _tags[] = { tags }; hrRequestModeTagList ( _tags); })
  595. #endif /* not NO_INLINE_STDARG */
  596.  
  597. extern __inline void
  598.  
  599. hrResizeSecondView( BASE_PAR_DECL struct HRHandle * hrh,
  600.                             UWORD width, UWORD height )
  601. {    BASE_EXT_DECL
  602.     register struct Library *a6 __asm("a6") = BASE_NAME;
  603.     register struct HRHandle * a0 __asm("a0") = hrh;
  604.     register UWORD d0 __asm("d0") = width;
  605.     register UWORD d1 __asm("d1") = height;
  606.     __asm __volatile ("jsr a6@(-0x186)"
  607.     : /* no output */
  608.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  609.     : "d0", "d1", "a0", "a1");
  610. }
  611. extern __inline void
  612. hrScrollSecondView( BASE_PAR_DECL struct HRHandle * hrh,
  613.                           UWORD width, UWORD height )
  614. {    BASE_EXT_DECL
  615.     register struct Library *a6 __asm("a6") = BASE_NAME;
  616.     register struct HRHandle * a0 __asm("a0") = hrh;
  617.     register UWORD d0 __asm("d0") = width;
  618.     register UWORD d1 __asm("d1") = height;
  619.     __asm __volatile ("jsr a6@(-0x19e)"
  620.     : /* no output */
  621.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  622.     : "d0", "d1", "a0", "a1");
  623. }
  624. extern __inline void
  625. hrSLockBitMap( BASE_PAR_DECL struct HRBitMap * hrbm )
  626. {
  627.     BASE_EXT_DECL
  628.     register struct Library *a6 __asm("a6") = BASE_NAME;
  629.     register struct HRBitMap * a0 __asm("a0") = hrbm;
  630.     __asm __volatile ("jsr a6@(-0x150)"
  631.     : /* no output */
  632.     : "r" (a6), "r" (a0)
  633.     : "d0", "d1", "a0", "a1");
  634. }
  635. extern __inline void
  636. hrSetBlanking( BASE_PAR_DECL struct HRHandle * hrh, BOOL blank )
  637. {
  638.     BASE_EXT_DECL
  639.     register struct Library *a6 __asm("a6") = BASE_NAME;
  640.     register struct HRHandle * a0 __asm("a0") = hrh;
  641.     register BOOL d0 __asm("d0") = blank;
  642.     __asm __volatile ("jsr a6@(-0x114)"
  643.     : /* no output */
  644.     : "r" (a6), "r" (a0), "r" (d0)
  645.     : "d0", "d1", "a0", "a1");
  646. }
  647. extern __inline void
  648. hrSetBorderColor( BASE_PAR_DECL struct HRHandle * dfhb, ULONG col )
  649. {
  650.     BASE_EXT_DECL
  651.     register struct Library *a6 __asm("a6") = BASE_NAME;
  652.     register struct HRHandle * a0 __asm("a0") = dfhb;
  653.     register ULONG d0 __asm("d0") = col;
  654.     __asm __volatile ("jsr a6@(-0x11a)"
  655.     : /* no output */
  656.     : "r" (a6), "r" (a0), "r" (d0)
  657.     : "d0", "d1", "a0", "a1");
  658. }
  659. extern __inline void
  660. hrSetColorMap( BASE_PAR_DECL struct HRHandle *hrh,
  661.                                       struct HRColorMap *hrcm )
  662. {    BASE_EXT_DECL
  663.     register struct Library *a6 __asm("a6") = BASE_NAME;
  664.     register struct HRHandle *a0 __asm("a0") = hrh;
  665.     register struct HRColorMap *a1 __asm("a1") = hrcm;
  666.  
  667.     __asm __volatile ("jsr a6@(-0x102)"
  668.     : /* no output */
  669.     : "r" (a6), "r" (a0), "r" (a1)
  670.     : "d0", "d1", "a0", "a1");
  671. }
  672. extern __inline void
  673. hrSetCursorData( BASE_PAR_DECL struct HRHandle * hrh,
  674.                                          struct HRCursor * data )
  675. {    BASE_EXT_DECL
  676.     register struct Library *a6 __asm("a6") = BASE_NAME;
  677.     register struct HRHandle * a0 __asm("a0") = hrh;
  678.     register struct HRCursor * a1 __asm("a1") = data;
  679.     __asm __volatile ("jsr a6@(-0xc6)"
  680.     : /* no output */
  681.     : "r" (a6), "r" (a0), "r" (a1)
  682.     : "d0", "d1", "a0", "a1");
  683. }
  684. extern __inline void
  685. hrSetCursorPos( BASE_PAR_DECL struct HRHandle * hrh, WORD x, WORD y )
  686. {
  687.     BASE_EXT_DECL
  688.     register struct Library *a6 __asm("a6") = BASE_NAME;
  689.     register struct HRHandle * a0 __asm("a0") = hrh;
  690.     register WORD d0 __asm("d0") = x;
  691.     register WORD d1 __asm("d1") = y;
  692.     __asm __volatile ("jsr a6@(-0xd2)"
  693.     : /* no output */
  694.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  695.     : "d0", "d1", "a0", "a1");
  696. }
  697. extern __inline void
  698. hrSetDispPos( BASE_PAR_DECL struct HRHandle * hrh, WORD posx, WORD posy )
  699. {
  700.     BASE_EXT_DECL
  701.     register struct Library *a6 __asm("a6") = BASE_NAME;
  702.     register struct HRHandle * a0 __asm("a0") = hrh;
  703.     register WORD d0 __asm("d0") = posx;
  704.     register WORD d1 __asm("d1") = posy;
  705.     __asm __volatile ("jsr a6@(-0x10e)"
  706.     : /* no output */
  707.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  708.     : "d0", "d1", "a0", "a1");
  709. }
  710. extern __inline void
  711. hrSetGfxAccel( BASE_PAR_DECL ULONG magic )
  712. {
  713.     BASE_EXT_DECL
  714.     register struct Library *a6 __asm("a6") = BASE_NAME;
  715.     register ULONG d0 __asm("d0") = magic;
  716.     __asm __volatile ("jsr a6@(-0x108)"
  717.     : /* no output */
  718.     : "r" (a6), "r" (d0)
  719.     : "d0", "d1", "a0", "a1");
  720. }
  721. extern __inline ULONG
  722. hrSetHardwareTagList( BASE_PAR_DECL struct TagItem * tags )
  723. {
  724.     BASE_EXT_DECL
  725.     register ULONG _res __asm("d0");
  726.     register struct Library *a6 __asm("a6") = BASE_NAME;
  727.     register struct TagItem *a0 __asm("a0") = tags;
  728.     __asm __volatile ("jsr a6@(-0x1e)"
  729.     : "=r" (_res)
  730.     : "r" (a6), "r" (a0)
  731.     : "d0", "d1", "a0", "a1");
  732.     return _res;
  733. }
  734.  
  735. #ifndef NO_INLINE_STDARG
  736. #define hrSetHardwareTags(tags...) \
  737.  ({ struct TagItem _tags[] = { tags }; hrSetHardwareTagList (_tags); })
  738. #endif /* not NO_INLINE_STDARG */
  739.  
  740. extern __inline void
  741. hrSetPaletteRGBA( BASE_PAR_DECL struct HRHandle * hrh,
  742.                                           HRCOL_RGBA * coltab,
  743.                                           UBYTE start, UBYTE end )
  744. {    BASE_EXT_DECL
  745.     register struct Library *a6 __asm("a6") = BASE_NAME;
  746.     register struct HRHandle * a0 __asm("a0") = hrh;
  747.     register HRCOL_RGBA * a1 __asm("a1") = coltab;
  748.     register UBYTE d0 __asm("d0") = start;
  749.     register UBYTE d1 __asm("d1") = end;
  750.     __asm __volatile ("jsr a6@(-0x7e)"
  751.     : /* no output */
  752.     : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1)
  753.     : "d0", "d1", "a0", "a1");
  754. }
  755. extern __inline BOOL
  756. hrSetPresetPalette( BASE_PAR_DECL struct HRHandle * hrh, ULONG preset )
  757. {
  758.     BASE_EXT_DECL
  759.     register BOOL _res __asm("d0");
  760.     register struct Library *a6 __asm("a6") = BASE_NAME;
  761.     register struct HRHandle * a0 __asm("a0") = hrh;
  762.     register ULONG d0 __asm("d0") = preset;
  763.     __asm __volatile ("jsr a6@(-0x90)"
  764.     : "=r" (_res)
  765.     : "r" (a6), "r" (a0), "r" (d0)
  766.     : "d0", "d1", "a0", "a1");
  767.     return _res;
  768. }
  769. extern __inline void
  770. hrSetRGB32( BASE_PAR_DECL struct HRHandle * hrh,
  771.                                   UBYTE colnum, ULONG r, ULONG g, ULONG b )
  772. {    BASE_EXT_DECL
  773.     register struct Library *a6 __asm("a6") = BASE_NAME;
  774.     register struct HRHandle * a0 __asm("a0") = hrh;
  775.     register UBYTE d0 __asm("d0") = colnum;
  776.     register ULONG d1 __asm("d1") = r;
  777.     register ULONG d2 __asm("d2") = g;
  778.     register ULONG d3 __asm("d3") = b;
  779.     __asm __volatile ("jsr a6@(-0x78)"
  780.     : /* no output */
  781.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  782.     : "d0", "d1", "a0", "a1", "d2", "d3");
  783. }
  784. extern __inline void
  785. hrSetRGB8( BASE_PAR_DECL struct HRHandle * hrh,
  786.                                  UBYTE colnum, UBYTE r, UBYTE g, UBYTE b )
  787. {    BASE_EXT_DECL
  788.     register struct Library *a6 __asm("a6") = BASE_NAME;
  789.     register struct HRHandle * a0 __asm("a0") = hrh;
  790.     register UBYTE d0 __asm("d0") = colnum;
  791.     register UBYTE d1 __asm("d1") = r;
  792.     register UBYTE d2 __asm("d2") = g;
  793.     register UBYTE d3 __asm("d3") = b;
  794.     __asm __volatile ("jsr a6@(-0x72)"
  795.     : /* no output */
  796.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  797.     : "d0", "d1", "a0", "a1", "d2", "d3");
  798. }
  799. extern __inline void
  800. hrSetRGBA( BASE_PAR_DECL struct HRHandle * hrh,
  801.                                  UBYTE colnum, HRCOL_RGBA color )
  802. {    BASE_EXT_DECL
  803.     register struct Library *a6 __asm("a6") = BASE_NAME;
  804.     register struct HRHandle * a0 __asm("a0") = hrh;
  805.     register UBYTE d0 __asm("d0") = colnum;
  806.     register HRCOL_RGBA d1 __asm("d1") = color;
  807.     __asm __volatile ("jsr a6@(-0x66)"
  808.     : /* no output */
  809.     : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  810.     : "d0", "d1", "a0", "a1");
  811. }
  812. extern __inline void
  813. hrSwitchCursor( BASE_PAR_DECL struct HRHandle * hrh, UBYTE mode )
  814. {
  815.     BASE_EXT_DECL
  816.     register struct Library *a6 __asm("a6") = BASE_NAME;
  817.     register struct HRHandle * a0 __asm("a0") = hrh;
  818.     register UBYTE d0 __asm("d0") = mode;
  819.     __asm __volatile ("jsr a6@(-0xd8)"
  820.     : /* no output */
  821.     : "r" (a6), "r" (a0), "r" (d0)
  822.     : "d0", "d1", "a0", "a1");
  823. }
  824. extern __inline void
  825. hrSwitchDisplay( BASE_PAR_DECL struct HRHandle * hrh, UBYTE mode )
  826. {
  827.     BASE_EXT_DECL
  828.     register struct Library *a6 __asm("a6") = BASE_NAME;
  829.     register struct HRHandle * a0 __asm("a0") = hrh;
  830.     register UBYTE d0 __asm("d0") = mode;
  831.     __asm __volatile ("jsr a6@(-0x96)"
  832.     : /* no output */
  833.     : "r" (a6), "r" (a0), "r" (d0)
  834.     : "d0", "d1", "a0", "a1");
  835. }
  836. extern __inline void
  837. hrSwitchSecondView( BASE_PAR_DECL struct HRHandle * hrh, BOOL flag )
  838. {
  839.     BASE_EXT_DECL
  840.     register struct Library *a6 __asm("a6") = BASE_NAME;
  841.     register struct HRHandle * a0 __asm("a0") = hrh;
  842.     register BOOL d0 __asm("d0") = flag;
  843.     __asm __volatile ("jsr a6@(-0x192)"
  844.     : /* no output */
  845.     : "r" (a6), "r" (a0), "r" (d0)
  846.     : "d0", "d1", "a0", "a1");
  847. }
  848. extern __inline void
  849. hrUnlockBitMap( BASE_PAR_DECL struct HRBitMap * hrbm )
  850. {
  851.     BASE_EXT_DECL
  852.     register struct Library *a6 __asm("a6") = BASE_NAME;
  853.     register struct HRBitMap * a0 __asm("a0") = hrbm;
  854.     __asm __volatile ("jsr a6@(-0x54)"
  855.     : /* no output */
  856.     : "r" (a6), "r" (a0)
  857.     : "d0", "d1", "a0", "a1");
  858. }
  859. extern __inline void
  860. hrUnlockHRList( BASE_PAR_DECL struct HRList * hrlock )
  861. {
  862.     BASE_EXT_DECL
  863.     register struct Library *a6 __asm("a6") = BASE_NAME;
  864.     register struct HRList * a0 __asm("a0") = hrlock;
  865.     __asm __volatile ("jsr a6@(-0x30)"
  866.     : /* no output */
  867.     : "r" (a6), "r" (a0)
  868.     : "d0", "d1", "a0", "a1");
  869. }
  870. extern __inline void
  871. hrUnlockModeInfoList( BASE_PAR_DECL0 )
  872. {
  873.     BASE_EXT_DECL
  874.     register struct Library *a6 __asm("a6") = BASE_NAME;
  875.  
  876.     __asm __volatile ("jsr a6@(-0xa2)"
  877.     : /* no output */
  878.     : "r" (a6)
  879.     : "d0", "d1", "a0", "a1");
  880. }
  881. extern __inline void
  882. hrUnlockScreenBase( BASE_PAR_DECL struct HRHandle * hrh )
  883. {
  884.     BASE_EXT_DECL
  885.     register struct Library *a6 __asm("a6") = BASE_NAME;
  886.     register struct HRHandle * a0 __asm("a0") = hrh;
  887.     __asm __volatile ("jsr a6@(-0x14a)"
  888.     : /* no output */
  889.     : "r" (a6), "r" (a0)
  890.     : "d0", "d1", "a0", "a1");
  891. }
  892.  
  893. #undef BASE_EXT_DECL
  894. #undef BASE_EXT_DECL0
  895. #undef BASE_PAR_DECL
  896. #undef BASE_PAR_DECL0
  897. #undef BASE_NAME
  898.  
  899. __END_DECLS
  900.  
  901. #endif /* _INLINE_HRGSYSTEM_H */
  902.